package demo03.A07;

import java.util.concurrent.*;

public class A001 {
    public static void main(String[] args) throws Exception {
        Semaphore semaphore = new Semaphore(2);  // 资源量为2
        for (int x = 0; x < 5; x++) {  // 5个线程
            new Thread(() -> {
                try {
                    semaphore.acquire();  // 获取资源，如果没有则阻塞
                    if (semaphore.availablePermits() >= 0) {  // 是否有可用资源
                        System.out.println("【业务办理 - 开始】当前的业务办理人员为：" + Thread.currentThread().getName());
                        TimeUnit.SECONDS.sleep(2);  // 模拟业务办理延迟
                        System.err.println("【业务办理 - 结束】当前的业务办理人员为：" + Thread.currentThread().getName());
                    }
                    semaphore.release();  // 释放资源
                } catch (Exception e) {
                }
            }, "用户 - " + x).start();  // 线程启动
        }
    }
}
